<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>

        /* 
            定义一个函数,这个函数将接受一个对象作为参数,他可以输出hello并打印对象的name属性
            
            多态
                - 在JS中不会检查参数的类型,所以这意味着任何数据都可以作为参数传递
                - 要调用某个函数,无需指定的类型,只要对象满足某些条件即可
                - 如果一个东西走路像鸭子,说话也像鸭子,那么他就是鸭子
                - 多态为我们提供了灵活性

        */
       class Person{
        constructor (name){
            this.name = name
        }
       }
       class Dog{
        constructor (name){
            this.name = name
        }
       }
       const P1 = new Person("GG")
       const D1 = new Dog("XX")

       function fn1(obj){
            // if(obj instanceof Person){
                // 判断obj的类是Person
                console.log(obj.name);
            // }
       }
       fn1(P1)
       fn1(D1)
    </script>
</head>
<body>
    
</body>
</html>
